css: Translate line-height to a Pango
authorMatthias Clasen <mclasen@redhat.com>
Sat, 7 Aug 2021 15:17:54 +0000 (11:17 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 22 Aug 2021 19:15:50 +0000 (15:15 -0400)
Pango 1.50 introduces a line-height attribute. Use it.
This is enough to make line-height work for labels
and entries.

gtk/gtkcssstyle.c

index 54aa0e7d2316aa8ad9707b2b06e43a5d8b1b3109..01e7467a104ddecd1031c26e75026a33433611d5 100644 (file)
@@ -33,6 +33,7 @@
 #include "gtkcssstringvalueprivate.h"
 #include "gtkcssfontvariationsvalueprivate.h"
 #include "gtkcssfontfeaturesvalueprivate.h"
+#include "gtkcsslineheightvalueprivate.h"
 #include "gtkcssstylepropertyprivate.h"
 #include "gtkcsstransitionprivate.h"
 #include "gtkstyleanimationprivate.h"
@@ -485,6 +486,20 @@ gtk_css_style_get_pango_attributes (GtkCssStyle *style)
       attrs = add_pango_attr (attrs, pango_attr_letter_spacing_new (letter_spacing * PANGO_SCALE));
     }
 
+#if PANGO_VERSION_CHECK(1, 49, 0)
+  /* line-height */
+  {
+    double height = gtk_css_line_height_value_get (style->font->line_height);
+    if (height != 0.0)
+      {
+        if (gtk_css_number_value_get_dimension (style->font->line_height) == GTK_CSS_DIMENSION_LENGTH)
+          attrs = add_pango_attr (attrs, pango_attr_line_height_new_absolute (height * PANGO_SCALE));
+        else
+          attrs = add_pango_attr (attrs, pango_attr_line_height_new (height));
+      }
+   }
+#endif
+
   /* OpenType features */
 
   s = NULL;